package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 考试记录对象 sysStudentExam
 * 
 * @author ruoyi
 * @date 2025-04-26
 */
@Data
public class SysStudentExam extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 试卷ID */
    @Excel(name = "试卷ID")
    private Long testPaperId;

    /** 试卷标题 */
    @Excel(name = "试卷标题")
    private String title;

    /** 课程ID */
    @Excel(name = "课程ID")
    private Long courseId;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String courseName;

    /** 考试班级ID */
    @Excel(name = "考试班级ID")
    private Long deptId;

    /** 考试班级名称 */
    @Excel(name = "考试班级名称")
    private String deptName;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 考试时间 */
    @Excel(name = "考试时间")
    private Long duration;

    /** 考试得分 */
    @Excel(name = "考试得分")
    private Long score;

    /** 考生ID */
    @Excel(name = "考生ID")
    private Long userId;

    /** 考生姓名 */
    @Excel(name = "考生姓名")
    private String username;

    /** 满分 */
    @Excel(name = "满分")
    private Long grade;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /**
     * 培训证书
     */
    private String fileUrl;

    /**
     * 关联试题
     */
    private List<SysSingleQuestion> sysSingleQuestions;
}
